package routes

import (
	controller "doctor_api_backend/controller"

	"github.com/gin-gonic/gin"
)

// SetupDoctorRoutes 设置医生相关的路由
// 功能：
// 1. 创建医生相关的路由组
// 2. 配置医生相关的API端点
// 3. 设置路由处理函数
// 参数：
//   - r: Gin路由组实例
//
// 路由说明：
//   - GET /api/v1/doctors: 获取所有医生列表
//   - GET /api/v1/doctors/:id: 获取指定ID的医生信息
//   - POST /api/v1/doctors: 创建新医生
//   - PUT /api/v1/doctors/:id: 更新指定ID的医生信息
//   - DELETE /api/v1/doctors/:id: 删除指定ID的医生
func SetupDoctorRoutes(r *gin.RouterGroup) {
	// 医生管理
	doctorGroup := r.Group("/doctors")
	{
		// 获取所有医生
		doctorGroup.GET("", controller.GetDoctors)
		// 通过id获取医生
		doctorGroup.GET(":id", controller.GetDoctorByID)
		// 创建医生
		doctorGroup.POST("", controller.CreateDoctor)
		// 通过id更新医生
		doctorGroup.PUT(":id", controller.UpdateDoctor)
		// 通过id删除医生
		doctorGroup.DELETE(":id", controller.DeleteDoctor)
	}
}

// 调试指南：
// 1. 路由测试：
//    - 获取医生列表：
//      curl -X GET http://localhost:8080/api/v1/doctors \
//           -H "Authorization: Bearer your-token-here"
//    - 获取单个医生：
//      curl -X GET http://localhost:8080/api/v1/doctors/1 \
//           -H "Authorization: Bearer your-token-here"
//    - 创建医生：
//      curl -X POST http://localhost:8080/api/v1/doctors \
//           -H "Content-Type: application/json" \
//           -H "Authorization: Bearer your-token-here" \
//           -d '{"name":"张医生","specialty":"内科"}'
//    - 更新医生：
//      curl -X PUT http://localhost:8080/api/v1/doctors/1 \
//           -H "Content-Type: application/json" \
//           -H "Authorization: Bearer your-token-here" \
//           -d '{"name":"张医生","specialty":"外科"}'
//    - 删除医生：
//      curl -X DELETE http://localhost:8080/api/v1/doctors/1 \
//           -H "Authorization: Bearer your-token-here"
//
// 2. 常见问题排查：
//    - 路由未注册：检查路由设置函数是否被调用
//    - 版本不匹配：检查API版本配置是否正确
//    - 权限问题：检查token是否有效
//    - 参数错误：检查请求参数格式是否正确
//
// 3. 开发建议：
//    - 使用Postman等工具测试API
//    - 添加请求参数验证
//    - 实现错误处理中间件
//    - 添加API文档注释
